﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ВидыРБП
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"0e805279-0a19-4b66-a319-b4edd6aa0d10\", \"Представление\":\"ОсвоениеПриродныхРесурсов\"}")]
		ОсвоениеПриродныхРесурсов = 0,//Освоение природных ресурсов
		[EnumMember(Value = "{\"Ссылка\":\"c57a8487-1841-47cb-800b-776df60c031d\", \"Представление\":\"ДолгосрочноеСтрахованиеЖизни\"}")]
		ДолгосрочноеСтрахованиеЖизни = 1,//Долгосрочное страхование жизни
		[EnumMember(Value = "{\"Ссылка\":\"d22b3c19-e0ac-4631-b513-83e374aa5a59\", \"Представление\":\"СтрахованиеНаОплатуМедицинскихРасходов\"}")]
		СтрахованиеНаОплатуМедицинскихРасходов = 2,//Страхование на оплату медицинских расходов
		[EnumMember(Value = "{\"Ссылка\":\"b7bf87e1-2659-478c-a73b-5247993743ca\", \"Представление\":\"СтрахованиеНаСлучайСмертиИУтратыРаботоспособности\"}")]
		СтрахованиеНаСлучайСмертиИУтратыРаботоспособности = 3,//Страхование на случай смерти и утраты работоспособности
		[EnumMember(Value = "{\"Ссылка\":\"68d49708-d9af-4aac-a8c6-3aacc447de60\", \"Представление\":\"ПрочиеВидыСтрахования\"}")]
		ПрочиеВидыСтрахования = 4,//Прочие виды страхования
		[EnumMember(Value = "{\"Ссылка\":\"a00d3b53-d75e-4db1-8c06-30d67e750635\", \"Представление\":\"ОтрицательныйРезультатОтРеализацииАмортизируемогоИмущества\"}")]
		ОтрицательныйРезультатОтРеализацииАмортизируемогоИмущества = 5,//Отрицательный результат от реализации амортизируемого имущества
		[EnumMember(Value = "{\"Ссылка\":\"64b2fd01-ac36-4d7d-b71a-208c4d5b41ca\", \"Представление\":\"Прочие\"}")]
		Прочие = 6,
	}
	public static partial class ВидыРБП_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ОсвоениеПриродныхРесурсов = new Guid("edb419a3-aad6-100d-4b66-0a190e805279");//Освоение природных ресурсов
		public static readonly Guid ДолгосрочноеСтрахованиеЖизни = new Guid("6d770b80-0cf6-1d03-47cb-1841c57a8487");//Долгосрочное страхование жизни
		public static readonly Guid СтрахованиеНаОплатуМедицинскихРасходов = new Guid("e38313b5-aa74-595a-4631-e0acd22b3c19");//Страхование на оплату медицинских расходов
		public static readonly Guid СтрахованиеНаСлучайСмертиИУтратыРаботоспособности = new Guid("47523ba7-3799-ca43-478c-2659b7bf87e1");//Страхование на случай смерти и утраты работоспособности
		public static readonly Guid ПрочиеВидыСтрахования = new Guid("ac3ac6a8-47c4-60de-4aac-d9af68d49708");//Прочие виды страхования
		public static readonly Guid ОтрицательныйРезультатОтРеализацииАмортизируемогоИмущества = new Guid("d630068c-757e-3506-4db1-d75ea00d3b53");//Отрицательный результат от реализации амортизируемого имущества
		public static readonly Guid Прочие = new Guid("8c201ab7-5b4d-ca41-4d7d-ac3664b2fd01");
		public static ВидыРБП Получить(this ВидыРБП Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыРБП Получить(this ВидыРБП Значение, Guid Ссылка)
		{
			if(Ссылка == ОсвоениеПриродныхРесурсов)
			{
				return ВидыРБП.ОсвоениеПриродныхРесурсов;
			}
			else if(Ссылка == ДолгосрочноеСтрахованиеЖизни)
			{
				return ВидыРБП.ДолгосрочноеСтрахованиеЖизни;
			}
			else if(Ссылка == СтрахованиеНаОплатуМедицинскихРасходов)
			{
				return ВидыРБП.СтрахованиеНаОплатуМедицинскихРасходов;
			}
			else if(Ссылка == СтрахованиеНаСлучайСмертиИУтратыРаботоспособности)
			{
				return ВидыРБП.СтрахованиеНаСлучайСмертиИУтратыРаботоспособности;
			}
			else if(Ссылка == ПрочиеВидыСтрахования)
			{
				return ВидыРБП.ПрочиеВидыСтрахования;
			}
			else if(Ссылка == ОтрицательныйРезультатОтРеализацииАмортизируемогоИмущества)
			{
				return ВидыРБП.ОтрицательныйРезультатОтРеализацииАмортизируемогоИмущества;
			}
			else if(Ссылка == Прочие)
			{
				return ВидыРБП.Прочие;
			}
			return ВидыРБП.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыРБП Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыРБП Значение)
		{
			switch (Значение)
			{
				case ВидыРБП.ОсвоениеПриродныхРесурсов: return ОсвоениеПриродныхРесурсов;
				case ВидыРБП.ДолгосрочноеСтрахованиеЖизни: return ДолгосрочноеСтрахованиеЖизни;
				case ВидыРБП.СтрахованиеНаОплатуМедицинскихРасходов: return СтрахованиеНаОплатуМедицинскихРасходов;
				case ВидыРБП.СтрахованиеНаСлучайСмертиИУтратыРаботоспособности: return СтрахованиеНаСлучайСмертиИУтратыРаботоспособности;
				case ВидыРБП.ПрочиеВидыСтрахования: return ПрочиеВидыСтрахования;
				case ВидыРБП.ОтрицательныйРезультатОтРеализацииАмортизируемогоИмущества: return ОтрицательныйРезультатОтРеализацииАмортизируемогоИмущества;
				case ВидыРБП.Прочие: return Прочие;
			}
			return Guid.Empty;
		}
	}
}